package cn.da.shuai.cool.system.service.service;

import cn.da.shuai.cool.mybatis.service.ICoolService;
import cn.da.shuai.cool.system.model.entity.job.CoolJobLog;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;

import java.util.List;

/**
 * 定时任务调度日志服务接口
 */
public interface ICoolJobLogService extends ICoolService<CoolJobLog> {

    /**
     * 获取quartz调度器日志的计划任务
     *
     * @param jobLog 调度日志信息
     * @return 调度任务日志集合
     */
    List<CoolJobLog> selectJobLogList(CoolJobLog jobLog);

    /**
     * 获取quartz调度器日志的计划任务分页
     *
     * @param jobLog 调度日志信息
     * @param page 分页信息
     * @return 调度任务日志分页
     */
    Page<CoolJobLog> selectJobLogPage(CoolJobLog jobLog, Page<CoolJobLog> page);

    /**
     * 通过调度任务日志ID查询调度信息
     *
     * @param jobLogId 调度任务日志ID
     * @return 调度任务日志对象信息
     */
    CoolJobLog selectJobLogById(Long jobLogId);

    /**
     * 新增任务日志
     *
     * @param jobLog 调度日志信息
     */
    void addJobLog(CoolJobLog jobLog);

    /**
     * 批量删除调度日志信息
     *
     * @param logIds 需要删除的日志ID
     * @return 结果
     */
    int deleteJobLogByIds(Long[] logIds);

    /**
     * 删除任务日志
     *
     * @param jobId 调度日志ID
     * @return 结果
     */
    int deleteJobLogById(Long jobId);

    /**
     * 清空任务日志
     */
    void cleanJobLog();
}